home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / PowerPlant / AGA Classes 1.2 / Sliders / LAGASliderBase.h < prev    next >
Text File  |  1996-06-30  |  4KB  |  111 lines

  1. // ===========================================================================
  2. //    LAGASliderBase.h
  3. // ===========================================================================
  4. //    “Apple Grayscale Appearance” compliant slider abstract base class
  5. //    Copyright © 1996 Chrisoft (Christophe ANDRES)  All rights reserved.
  6. //
  7. //    You may use this source code in any application (commercial, shareware, freeware,
  8. //    postcardware, etc), but not remove this notice (no need to acknowledge the use of
  9. //    this class in the about box)
  10. //    You may not sell this source code in any form. This source code may be placed on 
  11. //    publicly accessable archive sites and source code disks. It may not be placed on 
  12. //    profit archive sites and source code disks without the permission of the author, 
  13. //    Christophe ANDRES.
  14. //    
  15. //        This source code is distributed in the hope that it will be useful,
  16. //        but WITHOUT ANY WARRANTY; without even the implied warranty of
  17. //        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  18. //
  19. //    If you make any change or improvement on this class, please send the improved/changed
  20. //    version to : chrisoft@calva.net or Christophe ANDRES
  21. //                                     20, rue Prosper Mérimée
  22. //                                     67100 STRASBOURG
  23. //                                     FRANCE
  24. //
  25. // ===========================================================================
  26. //    LAGASliderBase.cp            <- double-click + Command-D to see class implementation
  27. //
  28. //    LAGASliderBase is an abstract class used by all the AGA slider classes to perform common duties
  29. //
  30. //        This class requires AGAColors.cp to be present in your project
  31. //
  32. //        Version : 1.2
  33. //
  34. //        Change History (most recent first, date in US form : mm/dd/yy):
  35. //
  36. //                        06/30/96    ca        Public release of version 1.2
  37. //                        06/04/96    ca        Added guard macros in header files
  38. //                                                        Increased version to 1.2
  39. //                        05/16/96    ca        class made available by Christophe ANDRES <chrisoft@calva.net>
  40. //                                                        (version 1.1)
  41. //
  42. //        To Do:
  43. //
  44.  
  45. #ifndef _H_LAGASliderBase
  46. #define _H_LAGASliderBase
  47. #pragma once
  48.  
  49. #include <LControl.h>
  50. #include <UGWorld.h>
  51.  
  52. class    LAGASliderBase : public LControl
  53. {
  54.     public        :
  55.         LAGASliderBase ();
  56.         
  57.         LAGASliderBase (LStream    *inStream);
  58.         
  59.         LAGASliderBase (const LAGASliderBase &inOriginal);
  60.         
  61.         LAGASliderBase (const SPaneInfo    &inPaneInfo, MessageT inValueMessage, Boolean inVertical, Boolean inBottomRightPointer,
  62.                                         Int32 inInitialValue, Int32 inMinValue, Int32 inMaxValue);
  63.  
  64.         virtual ~LAGASliderBase ();
  65.         
  66.     protected    :
  67.  
  68.         virtual void DrawSelf ();
  69.         
  70.         virtual void DrawSlideTrack ();
  71.         
  72.         virtual void DrawLabels () { };
  73.         
  74.         virtual void DrawIndicator (Boolean inPushed) = 0;                        //    Must be overriden
  75.         
  76.         virtual short GetIndicatorPosition () = 0;                                        //    Must be overriden
  77.         
  78.         virtual Boolean TrackHotSpot (Int16 inHotSpot, Point inPoint);
  79.         
  80.         virtual void FinishTrackHotSpot (Point inPoint) { };
  81.         
  82.         virtual void HotSpotAction (Int16 inHotSpot, Boolean inCurrInside, Boolean inPrevInside);
  83.         
  84.         virtual void HotSpotResult (Int16 inHotSpot);
  85.         
  86.         virtual void GetIndicatorRect (Rect &outRect) = 0;                        //    Must be overriden
  87.         
  88.         virtual void InitializeGhost ();
  89.         
  90.         virtual void FinishGhost ();
  91.         
  92.         virtual void DrawGhost (Point inPoint) = 0;                                        //    Must be overriden
  93.         
  94.         virtual void DisableSelf () { Refresh(); };
  95.  
  96.         virtual void EnableSelf () { Refresh(); };
  97.         
  98.         Boolean mVerticalSlider;
  99.         Boolean mRightBottomPointing;
  100.         
  101.             //    GWorld and mask used to hold and draw the ghost pointer
  102.         LGWorld *mGhostPointer;
  103.         RgnHandle mGhostMask;
  104.         Rect mLastGhost;
  105.         Point mLastPosition;
  106.         
  107.         short mTrackOriginTinkering;
  108. };
  109.  
  110. #endif
  111.